/*
 * @Author: lidongxue
 * @Date: 2018-06-12 20:50:13
 * @Last Modified by: lidongxue
 * @Last Modified time: 2018-06-30 18:12:42
 */


const log = require('../lib/log.js').Create(__FILE__);
const schedule = require('node-schedule');
const rp = require('request-promise');
const moment = require('moment');
const redis = require('redis');
const config = require('../config');

// 保留误差每日 00：00：03 开始执行

schedule.scheduleJob('* */10 * * * *', function () {
    console.log('定时任务执行');
    try {
        // 执行任务
        get7daysaciveuser();
    } catch (e) {
        console.log(e);
    }
});


let talkingdata = {
    accesskey: '574d8b795c836d506a2d00e9a3f2232f', // *填写应用的接入码
    metrics: ['activeuser'],  // *填写要查询的指标项 这里注册的是什么？
    groupby: 'daily',  // *填写数据维度，即数据分组方式
    filter: {  // *数据筛选条件
        start: moment().subtract(7, 'days').format('YYYY-MM-DD'), // *查询时期的起始日
        end: moment(Date.now()).format('YYYY-MM-DD') // *查询时期的截止日
        // "platformids":[1,2], //限定要查询的系统平台
        // "versions":["1.0","2.0"], //限定应用版本号
        // "channelids":[1605,1607],   //限定查询渠道
        // "eventids":["clear","addCar"],   //限定查询的事件id
        // "pagenames":["index","pay"]   //限定查询的页面名
    },
    order: 'desc', // 数据结果排序方式，除按时间分组外默认倒序
    limit: 10,   // 限定返回数据的条数
    sum: false,  // 返回结果中给出数据总和
    avg: false  // 返回结果中给出数据的平均值
};
//  接口-参数说明
function get7daysaciveuser() {
    let options = {
        method: 'POST',
        uri: 'https://api.talkingdata.com/metrics/app/v1',
        body: talkingdata,
        json: true // Automatically stringifies the body to JSON
    };
    rp(options)
        .then(function (parsedBody) {
            // let days7visit = JSON.stringify(parsedBody);
            console.log(parsedBody);
            if (parsedBody.status === 200) {
                const client = redis.createClient(config.redis.port, config.redis.ip, { password: config.redis.password });
                client.on("error", function (err) {
                    console.log("Error " + err);
                    return  null;
                });
                // const client = redis.createClient(config.port, config.ip, { password: config.password });
                // const client = redis.createClient(6379, '127.0.0.1', {});
                client.set('days7visit', JSON.stringify(parsedBody.result));
                console.log(parsedBody.result); 
            }
        }).catch(function (err) {
            console.log(err);
        });
}
